/* 
 *  javascribd - Java client library for the Scribd API. 
 *  Copyright (C) 2009 by Marcel Eyke, http://code.google.com/p/javascribd/ 
 *  Use is subject to license terms of LGPLv3. See license.txt. 
 */
package com.google.code.javascribd.docs;

import java.net.URL;

import com.google.code.javascribd.connection.AbstractScribdMethod;
import com.google.code.javascribd.connection.annotation.GETParameter;
import com.google.code.javascribd.connection.annotation.Method;
import com.google.code.javascribd.type.Access;
import com.google.code.javascribd.type.ApiKey;
import com.google.code.javascribd.type.DocumentId;
import com.google.code.javascribd.type.License;
import com.google.code.javascribd.type.SessionKey;
import com.google.code.javascribd.type.ShowAds;

/**
 * This class is the POJO of the docs.changeSettings Scribd request.
 * 
 * @see <a
 *      href="http://www.scribd.com/developers/api?method_name=docs.changeSettings">docs.changeSettings
 *      specification on Scribd.com</a>
 * 
 * @author Marcel Eyke
 */

@Method(name = "docs.changeSettings")
public class ChangeSettings extends AbstractScribdMethod<ChangeSettingsResponse> {

	@GETParameter(name = "doc_ids")
	private DocumentId docId;

	@GETParameter(name = "title")
	private String title;

	@GETParameter(name = "description")
	private String description;

	@GETParameter(name = "access")
	private Access access;

	@GETParameter(name = "license")
	private License license;

	@GETParameter(name = "show_ads")
	private ShowAds showAds;

	@GETParameter(name = "link_back_url")
	private URL linkBackURL;

	/* TODO, May 10, 2009, meyke - csv formated */
	@GETParameter(name = "tags")
	private String tags;

	@GETParameter(name = "author")
	private String author;

	@GETParameter(name = "publisher")
	private String publisher;

	@GETParameter(name = "when_published")
	private String whenPublished;

	@GETParameter(name = "edition")
	private String edition;

	@GETParameter(name = "api_key")
	private ApiKey apiKey;

	@GETParameter(name = "session_key")
	private SessionKey sessionKey;

	@GETParameter(name = "my_user_id")
	private String myUserId;

	public ChangeSettings(ApiKey apiKey) {
		super();
		this.apiKey = apiKey;
	}

	public DocumentId getDocId() {
		return docId;
	}

	public void setDocId(DocumentId docId) {
		this.docId = docId;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}

	public Access getAccess() {
		return access;
	}

	public void setAccess(Access access) {
		this.access = access;
	}

	public License getLicense() {
		return license;
	}

	public void setLicense(License license) {
		this.license = license;
	}

	public ShowAds getShowAds() {
		return showAds;
	}

	public void setShowAds(ShowAds showAds) {
		this.showAds = showAds;
	}

	public URL getLinkBackURL() {
		return linkBackURL;
	}

	public void setLinkBackURL(URL linkBackURL) {
		this.linkBackURL = linkBackURL;
	}

	public String getTags() {
		return tags;
	}

	public void setTags(String tags) {
		this.tags = tags;
	}

	public String getAuthor() {
		return author;
	}

	public void setAuthor(String author) {
		this.author = author;
	}

	public String getPublisher() {
		return publisher;
	}

	public void setPublisher(String publisher) {
		this.publisher = publisher;
	}

	public String getWhenPublished() {
		return whenPublished;
	}

	public void setWhenPublished(String whenPublished) {
		this.whenPublished = whenPublished;
	}

	public String getEdition() {
		return edition;
	}

	public void setEdition(String edition) {
		this.edition = edition;
	}

	public SessionKey getSessionKey() {
		return sessionKey;
	}

	public void setSessionKey(SessionKey sessionKey) {
		this.sessionKey = sessionKey;
	}

	public String getMyUserId() {
		return myUserId;
	}

	public void setMyUserId(String myUserId) {
		this.myUserId = myUserId;
	}

	public ApiKey getApiKey() {
		return apiKey;
	}

}
